//package com.ruoyi.web.controller.function;
//
//import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
//
//import com.ruoyi.common.Constants;
//import com.ruoyi.common.annotation.Anonymous;
//import com.ruoyi.common.core.domain.AjaxResult;
//import io.swagger.annotations.Api;
//import io.swagger.annotations.ApiOperation;
//import org.springframework.beans.factory.annotation.Autowired;
//import org.springframework.beans.factory.annotation.Value;
//import org.springframework.data.redis.core.RedisTemplate;
//import org.springframework.mail.SimpleMailMessage;
//import org.springframework.mail.javamail.JavaMailSender;
//import org.springframework.web.bind.annotation.GetMapping;
//import org.springframework.web.bind.annotation.PathVariable;
//import org.springframework.web.bind.annotation.RequestMapping;
//import org.springframework.web.bind.annotation.RestController;
//
//import javax.annotation.Resource;
//import java.text.DecimalFormat;
//import java.util.ArrayList;
//import java.util.List;
//import java.util.Random;
//import java.util.concurrent.TimeUnit;
//import java.util.regex.Matcher;
//import java.util.regex.Pattern;
//
///**
// * @author Y·C
// * @version 1.0.0
// * @ClassName InterfaceApiController.java
// * @Description TODO
// * @createTime 2023年04月19日 21:32:00
// */
//@RestController
//@RequestMapping("/api/service")
//@Api(tags = "对接服务的API接口 获取QQ邮箱验证码")
//public class InterfaceApiController {
//
//
//
//    @Autowired
//    private RedisTemplate<String, String> redisTemplate;
//
//
//    @Resource
//    private JavaMailSender javaMailSender;
//
//
//    /**
//     * 邮箱号
//     */
//    @Value("${spring.mail.username}")
//    private String email;
//
//    @Anonymous
//    @ApiOperation(value = "注册时发送邮件验证码")
//    @GetMapping("/sendMailCode/{mail}")
//    public AjaxResult sendMail(@PathVariable String mail) {
//        if (!isEmail(mail)) {
//            return AjaxResult.error("2001","请输入正确格式的邮箱");
//        }
//        //redis邮箱存在则不在发送
//        if (redisTemplate.hasKey(mail)) {
//            return AjaxResult.success("发送成功");
//        }
//        QuarantinedPersonnelVo sysUserVo = new QuarantinedPersonnelVo();
//        sysUserVo.setEmail(mail);
//        QueryWrapper<QuarantinedPersonnel> wrapper = new QueryWrapper<>();
//        wrapper.eq("email",mail);
////        List<QuarantinedPersonnel> list = quarantinedPersonnelService.list(wrapper);
//        List<QuarantinedPersonnel> list = new ArrayList<>();
//        //如果邮箱存在
//        if (list.size()!=0) {
//            return AjaxResult.success ("2001","邮箱已被注册");
//        }
//
//        Random random = new Random();
//        DecimalFormat sixdf = new DecimalFormat("000000");
//        String code = sixdf.format(random.nextInt(1000000));
//
//        try {
//            // 存入到redis 邮箱、验证码、时间、单位
//            redisTemplate.opsForValue().set(Constants.CAPTCHA_CODE_KEY + mail, code, Constants.CAPTCHA_EXPIRATION, TimeUnit.MINUTES);
//            // 发送邮件
//            SimpleMailMessage message = new SimpleMailMessage();
//            message.setSubject("注册验证码");
//            message.setText("你的验证码是"+code+"有效期是"+Constants.CAPTCHA_EXPIRATION+"分钟"+","+"请不要告诉他人哦！");
//            message.setFrom(email);
//            message.setTo(mail);
//            javaMailSender.send(message);
//
//        } catch (Exception e) {
//            return AjaxResult.error("20001","发送邮件失败");
//        }
//
//        return AjaxResult.success("正在发送邮件，请注意查收");
//    }
//
//    @Anonymous
//    @ApiOperation(value = "登录密码发送邮件验证码")
//    @GetMapping("/sendRetrieveMail/{mail}")
//    public AjaxResult sendRetrieveMail(@PathVariable String mail) {
//        if (!isEmail(mail)) {
//            return AjaxResult.error("2001","请输入正确格式的邮箱");
//        }
//
//        QuarantinedPersonnelVo sysUserVo = new QuarantinedPersonnelVo();
//        sysUserVo.setEmail(mail);
//        QueryWrapper<QuarantinedPersonnel> wrapper = new QueryWrapper<>();
//        wrapper.eq("email",mail);
////        List<QuarantinedPersonnel> list = quarantinedPersonnelService.list(wrapper);
//        List<QuarantinedPersonnel> list = new ArrayList<>();
//        //如果邮箱不存在
//        if (list.size()==0) {
//            return AjaxResult.error("2001","账号不存在");
//        }
//        Random random = new Random();
//        DecimalFormat sixdf = new DecimalFormat("000000");
//        String code = sixdf.format(random.nextInt(1000000));
//
//        try {
//            redisTemplate.opsForValue().set(Constants.CAPTCHA_CODE_KEY + mail, code, Constants.CAPTCHA_EXPIRATION, TimeUnit.MINUTES);
//            SimpleMailMessage message = new SimpleMailMessage();
//            message.setSubject("肺炎疫情监控平台登录验证码");
//
//            message.setText("您的验证码是"+code+"有效期是"+Constants.CAPTCHA_EXPIRATION+"分钟"+","+"请不要告诉他人哦！");
//            message.setFrom(email);
//            message.setTo(mail);
//            javaMailSender.send(message);
//
//        } catch (Exception e) {
//            return AjaxResult.error("2001","发送邮件失败");
//        }
//
//        return AjaxResult.success("正在发送邮件，请注意查收");
//    }
//
//
//    public static boolean isEmail(String string) {
//        if (string == null){
//            return false;
//        }
//        String regEx1 = "^([a-z0-9A-Z]+[-|\\.]?)+[a-z0-9A-Z]@([a-z0-9A-Z]+(-[a-z0-9A-Z]+)?\\.)+[a-zA-Z]{2,}$";
//        Pattern p;
//        Matcher m;
//        p = Pattern.compile(regEx1);
//        m = p.matcher(string);
//        if (m.matches()) {
//            return true;
//        }else {
//            return false;
//        }
//    }
//
//
//}
